package com.example.xunua_weather.Adapter;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;

import java.util.List;

public class CityFragmentPagerAdapter extends FragmentStatePagerAdapter {
    /**
     * FragmentStatePagerAdapter 只保留当前页面，当页面离开视线后，就会被消除，
     * 释放其资源；而在页面需要显示时，生成新的页面(这和 ListView 的实现一样)。
     * 这种方式的好处就是当拥有大量的页面时，不必在内存中占用大量的内存。
     *
     */
    List<Fragment> fragmentList;

    public CityFragmentPagerAdapter(FragmentManager fm, List<Fragment> fragmentList) {
        super(fm);
        this.fragmentList = fragmentList;
    }

    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);
    }

    @Override
    public int getCount() {
        return fragmentList.size();
    }

    int chidCount=0;//view pager的页数
    //当viewpager页数发生变化时，必须要重写这两个方法才能更新数据。
    @Override
    public void notifyDataSetChanged() {
        super.notifyDataSetChanged();
        this.chidCount=getCount();
        super.notifyDataSetChanged();//更新数据
    }
    @Override
    public int getItemPosition(@NonNull Object object) {
        if (chidCount > 0) {
            chidCount--;
            return POSITION_NONE;  //有疑惑
        }
        return super.getItemPosition(object);
    }
}
